import { http } from '@/utils/http'

/**
 * OK
 *
 * PageRouteVO
 */
export interface Response {
  countId?: string
  current?: number
  maxLimit?: number
  optimizeCountSql?: boolean
  optimizeJoinOfCountSql?: boolean
  orders?: OrderItem[]
  records?: RouteVO[]
  searchCount?: boolean
  size?: number
  total?: number
  [property: string]: any
}

/**
 *
 * OrderItem
 */
export interface OrderItem {
  asc?: boolean
  column?: string
  [property: string]: any
}

/**
 * 骑行路线表VO对象
 *
 * RouteVO
 */
export interface RouteVO {
  /**
   * 中心坐标（纬度）
   */
  centerLatitude?: number
  /**
   * 中心坐标（经度）
   */
  centerLongitude?: number
  /**
   * 创建时间
   * 创建人
   */
  createdBy?: string
  /**
   * 创建时间
   */
  createdTime?: string
  /**
   * 逻辑删除
   */
  deleted?: number
  /**
   * 路线描述
   */
  description?: string
  /**
   * 路线难度（1简单、2中等、3困难）
   */
  difficulty?: number
  /**
   * 路线长度（公里）
   */
  distance?: number
  /**
   * 预计骑行时间（分钟）
   */
  estimatedTime?: number
  /**
   * 路线ID
   */
  id?: number
  /**
   * 图片链接
   */
  image?: string
  /**
   * 路线地点
   */
  location?: string
  /**
   * 路线名称
   */
  name?: string
  /**
   * 路线推荐
   */
  recommend?: string
  /**
   * 备注
   */
  remark?: string
  /**
   * 路线坐标（JSON格式）
   */
  scenicPoints?: string
  /**
   * 标签
   */
  tag?: string
  /**
   * 更新时间
   * 更新人
   */
  updatedBy?: string
  /**
   * 更新时间
   */
  updatedTime?: string
  [property: string]: any
}

/** GET 请求 */
export const getRouteAPI = () => {
  return http.get<RouteVO>('/route/pageQueryList')
}
export const getOneRouteAPI = (id: number) => {
  return http.get<RouteVO>('/route/getRoute', { id })
}
export const getRouteListAPI = (pageSize: number, pageNo: number, keywords: string) => {
  return http.get<Response>('/route/pageQueryList', { pageSize, pageNo, keywords })
}

/** POST 请求 */
export const routeListAPI = (pageSize: number, pageNo: number, keywords: string) => {
  return http.get<Response>('/route/pageQueryList', { pageSize, pageNo, keywords })
}
